
<!DOCTYPE html>
<html lang="zh-CN" class="app">
	
<!-- Mirrored from easp.jswwl.com/?api/Easp.Var.Var by HTTrack Website Copier/3.x [XR&CO'2014], Sat, 13 Nov 2021 05:14:54 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=UTF-8" /><!-- /Added by HTTrack -->
<head>
		<meta charset="utf-8" />
		<title>Easp.Var.Var - EasyASP API 文档</title>
		<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
		<link href="../cdn.bootcss.com/bootstrap/3.1.0/css/bootstrap.min.css" rel="stylesheet">
		<link href="../cdn.bootcss.com/font-awesome/4.6.2/css/font-awesome.min.css" rel="stylesheet">		<link href="../cdn.bootcss.com/prettify/r298/prettify.min.css" rel="stylesheet">
		<link rel="stylesheet" href="inc/css/animate.css" type="text/css" />
		<link rel="stylesheet" href="inc/css/simple-line-icons.css" type="text/css" />
		<link rel="stylesheet" href="inc/css/font.css" type="text/css" />
		<link rel="stylesheet" href="inc/css/app.css" type="text/css" />
		<link rel="stylesheet" href="inc/editor/css/editormd.preview.min.css" />
		<!--<link href='http://api.youziku.com/webfont/CSS/57358c19f629d8086c49377f' rel='stylesheet' type='text/css' />-->
		<!--[if lt IE 9]>
			<script src="inc/js/ie/html5shiv.js"></script>
			<script src="inc/js/ie/respond.min.js"></script>
			<script src="inc/js/ie/excanvas.js"></script>
		<![endif]-->
	</head>
	<body>
		<section class="vbox">
			<header class="bg-white-only header header-md navbar navbar-fixed-top-xs">
	<div class="navbar-header aside bg-info dk">
		<a class="btn btn-link visible-xs" data-toggle="class:nav-off-screen,open" data-target="#nav,html"> <i class="icon-list"></i></a>
		<a href="index.html" class="navbar-brand text-lt"> <img src="inc/images/logo.png" alt="."> <span class="hidden-nav-xs m-l-sm english">EasyASP</span></a>
	</div>
	<ul class="nav navbar-nav hidden-xs">
		<li>
			<a href="#nav,.navbar-header" data-toggle="class:nav-xs,nav-xs" class="text-muted"> <i class="fa fa-dedent text"></i><i class="fa fa-indent text-active"></i></a>
		</li>
	</ul>
	<!--<form class="navbar-form navbar-left input-s-lg m-t m-l-n-xs hidden-xs" role="search">
		<div class="form-group">
			<div class="input-group">
				<span class="input-group-btn">
					<button type="button" class="btn btn-sm bg-white btn-icon rounded"><i class="fa fa-search"></i></button>
				</span>
				<input type="text" class="form-control input-sm no-border rounded" id="search" placeholder="Search API">
			</div>
		</div>
	</form>-->
	<ul class="nav nav-pills pull-right topnav hidden-xs">
		<li role="presentation"><a href="http://www.easyasp.cn/" target="_blank">EASP官网</a></li>
		<li role="presentation"><a href="http://www.easyasp.cn/downloads" target="_blank">下载</a></li>
		<li role="presentation"><a href="http://www.easyasp.cn/tutorials" target="_blank">教程</a></li>
		<li role="presentation" class="active"><a href="javascript:;">API文档</a></li>
		<li role="presentation"><a href="http://www.easyasp.cn/plugins" target="_blank">插件</a></li>
		<li role="presentation"><a href="http://bbs.easyasp.cn/" target="_blank">论坛</a></li>
		<li role="presentation"><a href="http://www.easyasp.cn/donate" target="_blank">捐赠</a></li>
	</ul>
</header>
			<section>
				<section class="hbox stretch">
					
<aside class="bg-dark dk aside hidden-print" id="nav">
	<section class="vbox">
		<section class="w-f-md scrollable">
			<div class="slim-scroll" data-height="auto" data-disable-fade-out="true" data-distance="0" data-size="10px" data-railOpacity="0.2">
				<nav class="nav-primary hidden-xs">
					<ul class="nav" data-ride="collapse">
						<li class="hidden-nav-xs padder m-t m-b-sm text-xs text-muted"></li>
						<li class=""><a href="index368f.html?api/Easp.BasePath" class="auto"><i class="fa-leaf fa"></i><span>基础公共函数</span></a></li>
						<li class="">
							<a href="#" class="auto"><span class="pull-right text-muted"><i class="fa fa-angle-left text"></i><i class="fa fa-angle-down text-active"></i></span><i class="fa-font fa"></i><span>字符串处理</span></a>
							<ul class="nav dk text-sm">
								<li class=""><a href="index19fa.html?api/Easp.Str.EncodeJsonUnicode" class="auto"> <i class="fa fa-angle-right text-xs"></i><span>字符串处理</span></a></li>
								<li class=""><a href="index843b.html?api/StringBuilder.NewLine" class="auto"> <i class="fa fa-angle-right text-xs"></i><span>String Builder</span></a></li>
								<li class=""><a href="indexbede.html?api/Validation.Value" class="auto"> <i class="fa fa-angle-right text-xs"></i><span>表单验证</span></a></li>
							</ul>
						</li>
						<li class=""><a href="index86e2.html?api/Easp.Date.Format" class="auto"><i class="fa-calendar fa"></i><span>日期处理</span></a></li>
						<li class=""><a href="index2520.html?api/Easp.Error.E" class="auto"><i class="fa-bug fa"></i><span>异常处理</span></a></li>
						<li class=""><a href="index3c88.html?api/Easp.Console.Enable" class="auto"><i class="fa-stethoscope fa"></i><span>控制台调试</span></a></li>
						<li class="active"><a href="index23ba.html?api/Easp.Var.Var" class="auto"><i class="fa-magic fa"></i><span>超级变量</span></a></li>
						<li class=""><a href="index6241.html?api/Easp.Db.QueryTimes" class="auto"><i class="fa-bars fa"></i><span>数据库操作</span></a></li>
						<li class="">
							<a href="#" class="auto"><span class="pull-right text-muted"><i class="fa fa-angle-left text"></i><i class="fa fa-angle-down text-active"></i></span><i class="fa-truck fa"></i><span>JSON 解析与生成</span></a>
							<ul class="nav dk text-sm">
								<li class=""><a href="index3fac.html?api/Easp.Json.EncodeUnicode" class="auto"> <i class="fa fa-angle-right text-xs"></i><span>JSON 解析与生成</span></a></li>
								<li class=""><a href="index1814.html?api/Object.Get" class="auto"> <i class="fa fa-angle-right text-xs"></i><span>JsonObject 对象</span></a></li>
								<li class=""><a href="indexd2e5.html?api/Array.Get" class="auto"> <i class="fa fa-angle-right text-xs"></i><span>JsonArray 对象</span></a></li>
							</ul>
						</li>
						<li class=""><a href="index0e2b.html?api/Easp.List.New" class="auto"><i class="fa-rocket fa"></i><span>超级数组</span></a></li>
						<li class=""><a href="index8d16.html?api/Easp.Fso.fsoName" class="auto"><i class="fa-copy fa"></i><span>文件系统处理</span></a></li>
						<li class=""><a href="index3006.html?api/Easp.Tpl.FilePath" class="auto"><i class="fa-bolt fa"></i><span>模板引擎</span></a></li>
						<li class=""><a href="indexc31d.html?api/Easp.Tar.SavePath" class="auto"><i class="fa fa-file-zip-o"></i><span>无组件压缩解压</span></a></li>
						<li class="">
							<a href="#" class="auto"><span class="pull-right text-muted"><i class="fa fa-angle-left text"></i><i class="fa fa-angle-down text-active"></i></span><i class="fa-upload fa"></i><span>无组件上传</span></a>
							<ul class="nav dk text-sm">
								<li class=""><a href="index7b7b.html?api/Easp.Upload.AllowMaxSize" class="auto"> <i class="fa fa-angle-right text-xs"></i><span>无组件上传</span></a></li>
								<li class=""><a href="index2627.html?api/File.ContentType" class="auto"> <i class="fa fa-angle-right text-xs"></i><span>文件对象</span></a></li>
							</ul>
						</li>
						<li class=""><a href="index14f8.html?api/Easp.Http.New" class="auto"><i class="icon-link icon"></i><span>远程文件处理</span></a></li>
						<li class="">
							<a href="#" class="auto"><span class="pull-right text-muted"><i class="fa fa-angle-left text"></i><i class="fa fa-angle-down text-active"></i></span><i class="fa-cloud-download fa"></i><span>缓存处理</span></a>
							<ul class="nav dk text-sm">
								<li class=""><a href="index2221.html?api/Easp.Cache.New" class="auto"> <i class="fa fa-angle-right text-xs"></i><span>缓存处理</span></a></li>
								<li class=""><a href="index99f4.html?api/Info.Expires" class="auto"> <i class="fa fa-angle-right text-xs"></i><span>缓存文件操作</span></a></li>
							</ul>
						</li>
						<li class="">
							<a href="#" class="auto"><span class="pull-right text-muted"><i class="fa fa-angle-left text"></i><i class="fa fa-angle-down text-active"></i></span><i class="fa-rss-square fa"></i><span>XML文件处理</span></a>
							<ul class="nav dk text-sm">
								<li class=""><a href="index00fb.html?api/Easp.Xml.Open" class="auto"> <i class="fa fa-angle-right text-xs"></i><span>XML文件处理</span></a></li>
								<li class=""><a href="index27f6.html?api/Node.Dom" class="auto"> <i class="fa fa-angle-right text-xs"></i><span>XML节点对象操作</span></a></li>
							</ul>
						</li>
						<li class=""><a href="index4112.html?api/Easp.Plug.Bs" class="auto"><i class="fa-plug fa"></i><span>拓展插件</span></a></li>
					</ul>
				</nav>
			</div>
		</section>
	</section>
</aside>
					<section id="content">
						<section class="vbox">
							<section class="w-f-md" id="bjax-target">
								<section class="hbox stretch">
<aside class="aside bg-light dk" id="sidebar">
	<section class="vbox animated">
		<section class="scrollable hover">
			<div class="list-group no-radius no-border no-bg auto en class-li">
<a href="index23ba.html?api/Easp.Var.Var" class="active list-group-item property">Easp.Var.Var</a>
<a href="indexe57b.html?api/Easp.Var.GetObject" class=" list-group-item method">Easp.Var.GetObject</a>
<a href="indexd144.html?api/Easp.Var.Has" class=" list-group-item method">Easp.Var.Has</a>

			</div>
		</section>
	</section>
</aside>
									<section id="content">
										<section class="vbox">
											<section class="w-f-md" id="bjax-target">
												<section class="hbox stretch">
													<aside class="col-lg-6 b-l">

<section class="vbox">

<section class="scrollable padder-v hover m-t m-b" id="test-editormd-view">

<textarea id="append-test" style="display:none;">
## Easp.Var.Var
属性，读取和设置EasyASP超级变量集
<h4 class="font-thin"><label class="label bg-info text-white"><i class="fa fa-code"></i> 语法</label></h4>

```asp
Easp.Var.Var(key) = value
Easp.Var(key) = value
```
注：没人用上面的全称，只用下面的简写别名，哈哈。
<h4 class="font-thin"><label class="label bg-info text-white"><i class="fa fa-cogs"></i> 参数</label></h4>

|参数|类型|说明
| ------------ | ------------ |
|key|String(字符串)|变量名
|value|String(字符串)/Int(字符串)/Array(数组)|变量值
<h4 class="font-thin"><label class="label bg-info text-white"><i class="fa fa-reply"></i> 返回值</label></h4>

|类型|说明
| ------------ | ------------ |
|String(字符串)|变量值
<h4 class="font-thin"><label class="label bg-info text-white"><i class="fa fa-info-circle"></i> 说明</label></h4>

超级变量是 EasyASP v3 中的一个全局字典对象，使用超级变量可以方便的处理 GET 及 POST 数据、数组、服务器变量、变量嵌套引用，特别的是，超级变量还可以直接以参数的形式用于数据库查询的 SQL 语句中，可以极大的简化您的开发流程。

以上是官方的介绍，现在是我的体会。

超级变量名副其实，不愧超级二字，写起代码来省时省力省心，优点太多了，写几个大家体会一下：
1. 不用声明变量了，虽然不是什么好事，但我懒啊。
2. 直接取上页传递的各种参数，无论你是 `Request.QueryString` 还是 `Request.Form`，直接取来用，而且是在SQL里用。
3. 在SQL里还可以参数化查询，根本不用再考虑防止注入的问题。
4. 超级变量再加上一个变态的 `Easp.Str.Format` 简直就是超级组合，请深入学习领会这两个方法，对你一定有帮助。

待续……

读取 `key` 的优先级依次为：
1. 自定义变量
2. Request.QueryString
3. Request.Form
4. EasyASP系统变量
5. Request.ServerVariables

即如有同名的变量，在上一个集合中找到则立即返回值，不再在下一集合中查找。
<h4 class="font-thin"><label class="label bg-info text-white"><i class="fa fa-plug"></i> 示例</label></h4>

#### 自定义变量
超级变量是一个可读写的字典对象，所以您可以像使用普通字典对象一样设置和读取它的键值。
优点：不用Dim了，缺点：不知道你有木有重用过变量名。
```asp
Easp.Var("string") = "我是字符串"
Easp.Var("int") = 123
Easp.Var("array") = Array("一", "二", "三")

Easp.WN Easp.Var("string")
Easp.WN Easp.Var("int")
Easp.WN Easp.Var("array")
```
浏览器返回：
```asp
我是字符串
123
一, 二, 三
```
#### 嵌套
您可以在超级变量的值中方便的引用其它超级变量的值，这个功能您可以做无限级的嵌套，嵌套得加上`=`号，也就是`{=key}`，普通变量里嵌套无效。
```asp
Dim english_name
Easp.Var("name") = "jam"
Easp.Var("fullname") = "dong {=name}"
english_name = "dong {=name}"

Easp.WN Easp.Var("fullname") 
Easp.WN english_name
```
浏览器返回：
```asp
dong jam
dong {=name}
```
#### 值为数组的处理
如果你直接给超级变量赋值为数组，则超级变量会同时把数组组合的字符串、数组的长度、原始数组及每个元素的值都写入超级变量方便你调用。
赋值时：
```asp
Easp.Var("变量名") = 数组
```
则会自动生成如下变量供你调用：
```asp
Easp.Var("变量名")              ‘返回字符串
Easp.Var("变量名_array")        ‘返回数组
Easp.Var("变量名_array_length") ‘返回数组长度
Easp.Var("变量名_array_序列号")  ‘返回数组元素值
```
示例：
```asp
Easp.Var("myvar") = Array(1,2,3,4,5)
Easp.WN Easp.Var("myvar")
Easp.WN IsArray(Easp.Var("myvar"))
Easp.WN IsArray(Easp.Var("myvar_array"))
Easp.WN Easp.Str.ToString(Easp.Var("myvar_array"))
Easp.WN Easp.Var("myvar_array_length")
Easp.WN Easp.Var("myvar_array_2")
```
浏览器返回：
```asp
1, 2, 3, 4, 5
False
True
[1, 2, 3, 4, 5]
5
3
```
#### 获取 Request 集合
超级变量可以直接获取到 `Request.QueryString` 和 `Request.Form` 的值，但是要注意的是，如果 `QueryString` 参数和提交的 `Form` 参数存在同名，则默认返回 `get.参数` 的值，您仍然可以用 `post.参数` 来获取 `From` 参数的值。

提交信息页：
```asp
<form action="http://easp.jswwl.com/var.asp?action=get" method="post">
	<input type="text" name="id" value="36" />
	<input type="text" name="username" value="jam" />
	<input type="text" name="password" value="abc123" />
	<input type="text" name="action" value="post" />
	<input type="submit" value="提交" />
</form>
```
接收信息页 `var.asp` ：
```asp
Easp.WN "Easp.Var(""id"") = " & Easp.Var("id")
Easp.WN "Easp.Var(""username"") = " & Easp.Var("username")
Easp.WN "Easp.Var(""password"") = " & Easp.Var("password")
Easp.WN "Easp.Var(""action"") = " & Easp.Var("action")
Easp.WN "Easp.Var(""get.action"") = " & Easp.Var("get.action")
Easp.WN "Easp.Var(""post.action"") = " & Easp.Var("post.action")
```
浏览器返回：
```asp
Easp.Var("id") = 36
Easp.Var("username") = jam
Easp.Var("password") = abc123
Easp.Var("action") = get
Easp.Var("get.action") = get
Easp.Var("post.action") = post
```
PS：注意 `action` 参数的变化。
提示：源码中有个小BUG，在core/easp.var.asp第131行： `If requestDic.Count > 0 Then` 需要改成 `If requestDic.Count >= 0 Then` 否则本例中的 `Easp.Var("get.action")` 会获取不到数据，已经和老大确认，等他提交Git，着急自己改。
#### Request 集合序列
如果接收的 `QueryString` 参数或者 `Form` 参数是一个序列，则也会同时写入序列/数组化序列/序列长度/每个元素的值。
提交信息页：
```html
<form action="http://easp.jswwl.com/var.asp?boardid=23&amp;boardid=24&amp;boardid=25&amp;boardid=26" method="post">
	<input type="text" name="action" value="up" />
	<input type="checkbox" name="id" value="1" />
	<input type="checkbox" name="id" value="2" />
	<input type="checkbox" name="id" value="3" />
	<input type="submit" value="提交" />
</form>
```
接收信息页 `var.asp` ：
```asp
Easp.WN Easp.Var("action")
Easp.WN "==================================="
Easp.WN Easp.Var("id")
Easp.WN Easp.Var("id_array_length")
Easp.WN Easp.Var("id_array_2")
Easp.WN "==================================="
Easp.WN Easp.Var("boardid")
Easp.WN Easp.Var("boardid_array_length")
Easp.WN Easp.Var("boardid_array_2")
```
浏览器返回：
```asp
up
===================================
1, 2, 3
3
3
===================================
23, 24, 25, 26
4
25
```
#### EasyASP 系统变量 And Request.ServerVariables
超级变量中内置了一些很常用的系统变量，我们可以直接调用，不用再做赋值处理了。
```asp
Easp.W "自动生成的ID："
Easp.WN Easp.Var("easp.newid")
Easp.W "当前日期时间："
Easp.WN Easp.Var("easp.datetime")
Easp.W "当前日期："
Easp.WN Easp.Var("easp.date")
Easp.W "当前时间："
Easp.WN Easp.Var("easp.time")
Easp.W "当前时间戳："
Easp.WN Easp.Var("easp.timestamp")
Easp.W "访问者IP地址："
Easp.WN Easp.Var("easp.ip")
Easp.W "服务器变量："
Easp.WN Easp.Var("server.SERVER_NAME")
```
浏览器返回：
```asp
自动生成的ID：22K7M7HUHG
当前日期时间：2016/5/27 14:26:07
当前日期：2016/5/27
当前时间：14:26:07
当前时间戳：1464330367
访问者IP地址：192.168.1.100
服务器变量：easp.jam1.cn
```
关于服务器变量，请参详这里 [ASP ServerVariables 集合](http://www.w3school.com.cn/asp/coll_servervariables.asp "ASP ServerVariables 集合")，列表里的服务器变量可以直接用 `Easp.Var("server.变量")` 来使用。
#### 与 Easp.Str.Format 强强联手
[Easp.Str.Format](http://easp.jam1.cn/?api/Easp.Str.Format "Easp.Str.Format") 方法所有的用法都可以和超级变量联合起来用。
```asp
Easp.Var("myvar") = "This is a {0}"
Easp.WN Easp.Str.Format(Easp.Var("myvar"), "Text")
Easp.Var("myvar") = "name:{0} / sex:{1} / age:{2}"
Easp.WN Easp.Str.Format(Easp.Var("myvar"), Array("Ertan", "Male", 38))
Easp.Var("myvar") = "jam"
Easp.WN Easp.Str.Format("name:{=myvar} / sex:{1} / age:{2}", Array("Ertan", "Male", 38))
```
浏览器返回：
```asp
This is a Text
name:Ertan / sex:Male / age:38
name:jam / sex:Male / age:38
```
#### 数据库参数化
超级变量还有一个最重要的功能，就是可以直接以参数的形式用于数据库查询的SQL语句中。
我们知道在一般的数据库操作中，采用参数化查询不仅可以避免数据库被注入，而且可以提升SQL语句执行的效率。EasyASP的数据库操作采用了全参数化查询，并且采用了一个非常简洁的方案，就是与超级变量配合进行参数化查询。
查询时一定注意，最不好理解的部分就是参数化查询，到底那里用`{=}`，那里不用`=`号，记着，SQL语句里表里已经设计好的表名库名得用等号，你提交来的数据不用等号就好了，并且用了`{=}`的话，超级变量的值一定是你自己定义的，不要让用户提交上来的数据加上`=`号，否则会有注入风险。
数据库参数化还有很多注意事项，请去这里：[Easp.Db.Exec](http://easp.jam1.cn/?api/Easp.Db.Exec "Easp.Db.Exec") 详细阅读一下。
```asp
Dim Rs
Easp.Var("table") = "easp_test"
Easp.Var("field") = "name"
Easp.Var("username") = "张三"
Easp.Var("age") = 34
Easp.Var("sex") = "女"
Set Rs = Easp.Db.Sel("Select * From {=table} Where {=field}={username}")
Easp.PrintString Rs 
Easp.WN ""
Call Easp.Db.Upd("{=table}","age={age:int},sex={sex}","{=field}={username}")
Set Rs = Easp.Db.Sel("Select * From {=table} Where {=field}={username}")
Easp.PrintString Rs 
```
浏览器返回：
```javascript
{"total":1, "rows":[{"id":"22J3398N1Q", "name":"张三", "age":23, "sex":"男"}]} 
{"total":1, "rows":[{"id":"22J3398N1Q", "name":"张三", "age":34, "sex":"女"}]}
```
<h4 class="font-thin"><label class="label bg-info text-white"><i class="fa fa-tag"></i> 应用场景 & 使用心得</label></h4>

无处不在的一个类，EaspV3的精华部分，一定要熟练掌握。
唯一发现不能使用的地方是在做微信的系统时，那个接收微信信息的接口程序，如果想用超级变量的话，就接收不到微信发来的消息，原因不明……
<h4 class="font-thin"><label class="label bg-info text-white"><i class="fa fa-terminal"></i> 源码解析</label></h4>

源码不贴了，见core/easp.var.asp，这个类一共没多少行代码，自己研究吧。



</textarea>

</section>

														</section>
													</aside>
												</section>
											</section>
										</section>
									</section>
								</section>
							</section>
						</section>
					</section>
				</section>
			</section>
		</section>		
		<script src="../s3.pstatp.com/cdn/expire-1-M/jquery/3.3.1/jquery.min.js"></script>
		<script src="../s1.pstatp.com/cdn/expire-1-M/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script>
		<script src="../s2.pstatp.com/cdn/expire-1-M/jQuery-slimScroll/1.3.8/jquery.slimscroll.min.js"></script>
		<script src="../s1.pstatp.com/cdn/expire-1-M/prettify/r298/prettify.min.js"></script>
		<script src="inc/editor/lib/marked.min.js"></script>
		<script src="inc/editor/editormd.js"></script>
		<script src="inc/js/app.js"></script>
		<script src="inc/js/jquery.easysearch.js"></script>
		<script>
			
			$(function() {
				var testEditormdView;
				testEditormdView = editormd.markdownToHTML("test-editormd-view", {
					htmlDecode: "style,script,iframe",
					emoji: true,
					editorTheme : "pastel-on-dark",
					taskList: true
				});
			});
			$('input').jSearch({
				selector: 'table',
				child: 'tr > td > a',
				minValLength: 0,
				Before: function() {
					$('table tr').data('find', '');
				},
				Found: function(elem, event) {
					$(elem).parent().data('find', 'true');
					$(elem).parent().parent().show();
				},
				NotFound: function(elem, event) {
					if (!$(elem).parent().data('find'));
					$(elem).parent().parent().hide();
				},
				After: function(t) {
					if (!t.val().length) $('table tr').show();
				}
			});
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "../hm.baidu.com/hm3298.js?7758fff2e207d5773bc5d925a2606368";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
		</script>
	</body>

<!-- Mirrored from easp.jswwl.com/?api/Easp.Var.Var by HTTrack Website Copier/3.x [XR&CO'2014], Sat, 13 Nov 2021 05:14:54 GMT -->
</html>